#include "Analyse_events.h"

int main()
{
FILE *fichier;
Personnel *tab,temp;
Events *str;
int c,i,j,M,nl=0,np=1; //nl:nombre de lignes, np: nombre de personnels
char cap[CHAR_MAX];
fichier= fopen("evenements.log", "r") ;
if(fichier==NULL)
{
printf("impossible d'ouvrir le fichier\n");
}
else
{
	while(c!=EOF)
	{
	c=fgetc(fichier);
	if (c=='\n') 
	{
	nl++;
	}
	}
tab = (Personnel *) malloc(sizeof(Personnel) * nl) ;
fseek (fichier,0,SEEK_SET);
	for(i=0;i<nl;i++)
	{
	fscanf(fichier,"%s\t%ld\t%s\n",tab[i].time,&tab[i].ID,tab[i].capteur);
	}
}

//Affichage de la structure Personnel
/*
printf("\nAffichage de la structure Personnel\n");
for(i=0;i<nl;i++)
{
printf("La case n° %d :\n\tID: %ld\n\tcapteur: %s\ttime: %s\n",i+1,tab[i].ID,tab[i].capteur,tab[i].time); 
}
*/

//Tri du tableau dans l'ordre croissant des ID
for (i=1;i<nl;i++)
{
temp=tab[i]; j=i;
while( j>0 && (tab[j-1].ID)>temp.ID)
{
tab[j]=tab[j-1];
j--;
}
tab[j]=temp;
}

//Affichage de la structure Personnel Triee
/*
printf("\nAffichage de la structure Personnel Triee\n");
for(i=0;i<nl;i++)
{
printf("La case n° %d :\n\tID: %ld\n\tcapteur: %s\ttime: %s\n",i+1,tab[i].ID,tab[i].capteur,tab[i].time); 
}
*/

//nombre de personnel
for(i=1;i<nl;i++)
{
if (tab[i].ID != tab[i-1].ID) {np++;}
}

str = (Events *) malloc(sizeof(Events) * np) ;
//initialisation de la réponse des capteurs à zéro (Structure Events)
for(i=0;i<np;i++)
{
for(j=0;j<NBRE_CAPTEURS;j++)
{
str[i].capteur[j]=0;
}
}

// A VERIFIER
//remplissage de la structure Events en binaire
M=tab[1].ID;i=0;j=0;
while(i<nl)
{
while((M==tab[i].ID) && (i<nl) )
{
strcpy(cap,tab[i].capteur);
str[j].ID=tab[i].ID;
     if (strcmp(cap,"E01") ==0) {str[j].capteur[0]=1;strcpy(str[j].time[0],tab[i].time);}
else if (strcmp(cap,"C01") ==0) {str[j].capteur[1]=1;strcpy(str[j].time[1],tab[i].time);}
else if (strcmp(cap,"S01") ==0) {str[j].capteur[2]=1;strcpy(str[j].time[2],tab[i].time);}
else if (strcmp(cap,"L01") ==0) {str[j].capteur[3]=1;strcpy(str[j].time[3],tab[i].time);}
else if (strcmp(cap,"C02") ==0) {str[j].capteur[4]=1;strcpy(str[j].time[4],tab[i].time);}
else if (strcmp(cap,"I01") ==0) {str[j].capteur[5]=1;strcpy(str[j].time[5],tab[i].time);}
else if (strcmp(cap,"L02") ==0) {str[j].capteur[6]=1;strcpy(str[j].time[6],tab[i].time);}
else if (strcmp(cap,"V01") ==0) {str[j].capteur[7]=1;strcpy(str[j].time[7],tab[i].time);}
else if (strcmp(cap,"D01") ==0) {str[j].capteur[8]=1;strcpy(str[j].time[8],tab[i].time);}
else if (strcmp(cap,"B01") ==0) {str[j].capteur[9]=1;strcpy(str[j].time[9],tab[i].time);}
else if (strcmp(cap,"M01") ==0) {str[j].capteur[10]=1;strcpy(str[j].time[10],tab[i].time);}
else if (strcmp(cap,"SOUT") ==0) {str[j].capteur[11]=1;strcpy(str[j].time[11],tab[i].time);}
else if (strcmp(cap,"POUT") ==0) {str[j].capteur[12]=1;strcpy(str[j].time[12],tab[i].time);}
else if (strcmp(cap,"EBOLA") ==0) {str[j].capteur[13]=1;strcpy(str[j].time[13],tab[i].time);}
i++;
}
M=tab[i].ID;
j++;
}

//Test d affichage
/*
for(j=0;j<np;j++)
{
printf("\tID:    %ld\n",str[j].ID);
printf("E01:   %d\tTime: %s\n",str[j].capteur[0],str[j].time[0]);
printf("C01:   %d\tTime: %s\n",str[j].capteur[1],str[j].time[1]);
printf("S01:   %d\tTime: %s\n",str[j].capteur[2],str[j].time[2]);
printf("L01:   %d\tTime: %s\n",str[j].capteur[3],str[j].time[3]);
printf("C02:   %d\tTime: %s\n",str[j].capteur[4],str[j].time[4]);
printf("I01:   %d\tTime: %s\n",str[j].capteur[5],str[j].time[5]);
printf("L02:   %d\tTime: %s\n",str[j].capteur[6],str[j].time[6]);
printf("V01:   %d\tTime: %s\n",str[j].capteur[7],str[j].time[7]);
printf("D01:   %d\tTime: %s\n",str[j].capteur[8],str[j].time[8]);
printf("B01:   %d\tTime: %s\n",str[j].capteur[9],str[j].time[9]);
printf("M01:   %d\tTime: %s\n",str[j].capteur[10],str[j].time[10]);
printf("SOUT:  %d\tTime: %s\n",str[j].capteur[11],str[j].time[11]);
printf("POUT:  %d\tTime: %s\n",str[j].capteur[12],str[j].time[12]);
printf("EBOLA: %d\tTime: %s\n",str[j].capteur[13],str[j].time[13]);
printf("\n");
}
*/
fclose(fichier);
return 0;
}
